package br.com.upper.entity;

import java.util.List;

import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.FetchType;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;

@Entity
@SequenceGenerator(name="SEQUENCE",sequenceName="SEQ_TESTE_CONFIGURATION",initialValue=1,allocationSize=1)
public class TestConfiguration extends EntityBase {
	
	private String accessKey;
	
	private String secretKey;
	
	private String imageId;
	
	private String snapShotId;
	
	private String keyName;
	
	private String securityGroupId;
	
	private String testPlanPath;

	private String logTransactionsPath;
	
	private String logTransactionsPathKey;
	
	private String logResourcesPath;
	
	private String logResourcesPathKey;
	
	//DB Configuration
	private String dbUrl;
	
	private String dbURLJMeterKey;
	
	private String dbDriver;
	
	private String dbDriverJMeterKey;
	
	private String dbUser;
	
	private String dbUserJMeterKey;
	
	private String dbPassword;
	
	private String dbPasswordJMeterKey;
	
	private String dbMaxConn;
	
	private String dbMaxConnJMeterKey;
	
	private String dbTimeOutGroup;
	
	private String dbTimeOutGroupJMeterKey;
	
	private String dbCleanIdleInterval;
	
	private String dbCleanIdleIntervalJMeterKey;
	
	private String dbConnTimeout;
	
	private String dbConnTimeoutJMeterKey;
	
	private String dbTestQuery;
	
	private String dbTestQueryJMeterKey;
	
	private String jMeterDirectory;

	private Integer numThreads;
	
	private String numThreadsJMeterKey;			
	
	private Integer initTime;
	
	private String initTimeJMeterKey;		
	
	private Integer iterations;
	
	private String iterationsJMeterKey;;	
	
	@ManyToOne
	private InstanceType instanceType;
	
	private Boolean findBestInstanceType = false;
	
	@Enumerated(EnumType.ORDINAL)
	private VolumeType volumeType;
	
	private Long provisionedIOPS;
	
	@OneToMany(fetch=FetchType.EAGER, mappedBy="configuration")
	private List<Transaction> transactions;
	
	public String getLogTransactionsPath() {
		return logTransactionsPath;
	}

	public void setLogTransactionsPath(String logTransactionsPath) {
		this.logTransactionsPath = logTransactionsPath;
	}

	public String getLogTransactionsPathKey() {
		return logTransactionsPathKey;
	}

	public void setLogTransactionsPathKey(String logTransactionsPathKey) {
		this.logTransactionsPathKey = logTransactionsPathKey;
	}

	public String getLogResourcesPath() {
		return logResourcesPath;
	}

	public void setLogResourcesPath(String logResourcesPath) {
		this.logResourcesPath = logResourcesPath;
	}

	public String getLogResourcesPathKey() {
		return logResourcesPathKey;
	}

	public void setLogResourcesPathKey(String logResourcesPathKey) {
		this.logResourcesPathKey = logResourcesPathKey;
	}

	public String getTestPlanPath() {
		return testPlanPath;
	}

	public void setTestPlanPath(String testPlanPath) {
		this.testPlanPath = testPlanPath;
	}

	public InstanceType getInstanceType() {
		return instanceType;
	}

	public void setInstanceType(InstanceType instanceType) {
		this.instanceType = instanceType;
	}

	public VolumeType getVolumeType() {
		return volumeType;
	}

	public void setVolumeType(VolumeType volumeType) {
		this.volumeType = volumeType;
	}

	public Long getProvisionedIOPS() {
		return provisionedIOPS;
	}

	public void setProvisionedIOPS(Long provisionedIOPS) {
		this.provisionedIOPS = provisionedIOPS;
	}

	public String getAccessKey() {
		return accessKey;
	}

	public void setAccessKey(String accessKey) {
		this.accessKey = accessKey;
	}

	public String getSecretKey() {
		return secretKey;
	}

	public void setSecretKey(String secretKey) {
		this.secretKey = secretKey;
	}

	public String getImageId() {
		return imageId;
	}

	public void setImageId(String imageId) {
		this.imageId = imageId;
	}

	public String getKeyName() {
		return keyName;
	}

	public void setKeyName(String keyName) {
		this.keyName = keyName;
	}

	public String getSecurityGroupId() {
		return securityGroupId;
	}

	public void setSecurityGroupId(String securityGroupId) {
		this.securityGroupId = securityGroupId;
	}

	public String getDbUrl() {
		return dbUrl;
	}

	public void setDbUrl(String dbUrl) {
		this.dbUrl = dbUrl;
	}

	public String getDbURLJMeterKey() {
		return dbURLJMeterKey;
	}

	public void setDbURLJMeterKey(String dbURLJMeterKey) {
		this.dbURLJMeterKey = dbURLJMeterKey;
	}

	public String getDbDriver() {
		return dbDriver;
	}

	public void setDbDriver(String dbDriver) {
		this.dbDriver = dbDriver;
	}

	public String getDbDriverJMeterKey() {
		return dbDriverJMeterKey;
	}

	public void setDbDriverJMeterKey(String dbDriverJMeterKey) {
		this.dbDriverJMeterKey = dbDriverJMeterKey;
	}

	public String getDbUser() {
		return dbUser;
	}

	public void setDbUser(String dbUser) {
		this.dbUser = dbUser;
	}

	public String getDbUserJMeterKey() {
		return dbUserJMeterKey;
	}

	public void setDbUserJMeterKey(String dbUserJMeterKey) {
		this.dbUserJMeterKey = dbUserJMeterKey;
	}

	public String getDbPassword() {
		return dbPassword;
	}

	public void setDbPassword(String dbPassword) {
		this.dbPassword = dbPassword;
	}

	public String getDbPasswordJMeterKey() {
		return dbPasswordJMeterKey;
	}

	public void setDbPasswordJMeterKey(String dbPasswordJMeterKey) {
		this.dbPasswordJMeterKey = dbPasswordJMeterKey;
	}

	public String getDbMaxConn() {
		return dbMaxConn;
	}

	public void setDbMaxConn(String dbMaxConn) {
		this.dbMaxConn = dbMaxConn;
	}

	public String getDbMaxConnJMeterKey() {
		return dbMaxConnJMeterKey;
	}

	public void setDbMaxConnJMeterKey(String dbMaxConnJMeterKey) {
		this.dbMaxConnJMeterKey = dbMaxConnJMeterKey;
	}

	public String getDbTimeOutGroup() {
		return dbTimeOutGroup;
	}

	public void setDbTimeOutGroup(String dbTimeOutGroup) {
		this.dbTimeOutGroup = dbTimeOutGroup;
	}

	public String getDbTimeOutGroupJMeterKey() {
		return dbTimeOutGroupJMeterKey;
	}

	public void setDbTimeOutGroupJMeterKey(String dbTimeOutGroupJMeterKey) {
		this.dbTimeOutGroupJMeterKey = dbTimeOutGroupJMeterKey;
	}

	public String getDbCleanIdleInterval() {
		return dbCleanIdleInterval;
	}

	public void setDbCleanIdleInterval(String dbCleanIdleInterval) {
		this.dbCleanIdleInterval = dbCleanIdleInterval;
	}

	public String getDbCleanIdleIntervalJMeterKey() {
		return dbCleanIdleIntervalJMeterKey;
	}

	public void setDbCleanIdleIntervalJMeterKey(String dbCleanIdleIntervalJMeterKey) {
		this.dbCleanIdleIntervalJMeterKey = dbCleanIdleIntervalJMeterKey;
	}

	public String getDbConnTimeout() {
		return dbConnTimeout;
	}

	public void setDbConnTimeout(String dbConnTimeout) {
		this.dbConnTimeout = dbConnTimeout;
	}

	public String getDbConnTimeoutJMeterKey() {
		return dbConnTimeoutJMeterKey;
	}

	public void setDbConnTimeoutJMeterKey(String dbConnTimeoutJMeterKey) {
		this.dbConnTimeoutJMeterKey = dbConnTimeoutJMeterKey;
	}

	public String getDbTestQuery() {
		return dbTestQuery;
	}

	public void setDbTestQuery(String dbTestQuery) {
		this.dbTestQuery = dbTestQuery;
	}

	public String getDbTestQueryJMeterKey() {
		return dbTestQueryJMeterKey;
	}

	public void setDbTestQueryJMeterKey(String dbTestQueryJMeterKey) {
		this.dbTestQueryJMeterKey = dbTestQueryJMeterKey;
	}

	public List<Transaction> getTransactions() {
		return transactions;
	}

	public void setTransactions(List<Transaction> transactions) {
		this.transactions = transactions;
	}

	public String getJMeterDirectory() {
		return jMeterDirectory;
	}

	public void setJMeterDirectory(String jMeterDirectory) {
		this.jMeterDirectory = jMeterDirectory;
	}

	public String getSnapShotId() {
		return snapShotId;
	}

	public void setSnapShotId(String snapShotId) {
		this.snapShotId = snapShotId;
	}

	public Integer getNumThreads() {
		return numThreads;
	}

	public void setNumThreads(Integer numThreads) {
		this.numThreads = numThreads;
	}

	public Integer getInitTime() {
		return initTime;
	}

	public void setInitTime(Integer initTime) {
		this.initTime = initTime;
	}

	public Integer getIterations() {
		return iterations;
	}

	public void setIterations(Integer iterations) {
		this.iterations = iterations;
	}

	public String getNumThreadsJMeterKey() {
		return numThreadsJMeterKey;
	}

	public void setNumThreadsJMeterKey(String numThreadsJMeterKey) {
		this.numThreadsJMeterKey = numThreadsJMeterKey;
	}

	public String getInitTimeJMeterKey() {
		return initTimeJMeterKey;
	}

	public void setInitTimeJMeterKey(String initTimeJMeterKey) {
		this.initTimeJMeterKey = initTimeJMeterKey;
	}

	public String getIterationsJMeterKey() {
		return iterationsJMeterKey;
	}

	public void setIterationsJMeterKey(String iterationsJMeterKey) {
		this.iterationsJMeterKey = iterationsJMeterKey;
	}

	public Boolean isFindBestInstanceType() {
		return findBestInstanceType;
	}

	public void setFindBestInstanceType(Boolean findBestInstanceType) {
		this.findBestInstanceType = findBestInstanceType;
	}
}
